package com.smithlibraties.util.annotation.register;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Register {

    /**
     * @return 物品或方块的类型
     */
    RegisterType type();

    /**
     * @return 物品或方块的名字
     */
    String value();

    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.FIELD)
    public @interface OreName {
        /**
         * @return 矿物词典
         */
        String value();
    }

    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.FIELD)
    public @interface ItemRender {
        /**
         * @return 渲染类
         */
        Class clazz();
    }

    @Retention(RetentionPolicy.RUNTIME)
    @Target(ElementType.FIELD)
    public @interface TextureName {
        /**
         * @return 模组的id
         */
        String modid();

        /**
         * @return 贴图名称
         */
        String value();
    }
}
